═══ 1. Installation ═══ This archive contains versions of TIMER0.SYS and DIVE. They are not installed automatically and will have to be installed by hand. Please note that these files are copyrighted by IBM and are included in the MainActor/2 archive by agreement of IBM Germany. ═══ 1.1. Installing DIVE ═══ DIVE is used by MainActor/2 for displaying video. The archive dive.zip contains the DIVE related files. Please copy the *.LUT files into the \mmos2 directory and the dive.dll into the \mmos2\dll directory. Make sure that you do not have a newer version installed. ═══ 1.2. Installing TIMER0.SYS ═══ TIMER0.SYS is needed by MainActor/2 for syncing audio and video streams. If TIMER0.SYS is not installed, video and audio streams will not be synced correctly. To install TIMER0.SYS, extract the files from the timer0.zip archive and install them with the device driver installer (DDINSTAL) utility. Make sure to remove the readonly attributes of the \os2\boot\clock*.sys files first with: attrib -r \os2\boot\clock*.sys. Please check if a newer TIMER0.SYS is not already installed. ═══ 2. Introduction ═══ MainActor/2 is a modular animation package. It allows you to load, edit, play and save animations, pictures and sounds of various formats and of any size. MainActor/2 features animation processing and editing functions and is the most powerful part of this package. MainView/2 is the external player of MainActor/2. It is useful when you only want to play an animation and don't want to load MainActor/2 just for that. MainView/2 can also be associated to other programs, like the WebExplorer. Both MainActor/2 and MainView/2 use the same modules for processing the various formats and are therefore quite flexible and expandable. They also both use DIVE from IBM for playback. ═══ 2.1. Why release a Beta ? ═══ We are new on the OS/2 market and want to make our product's as integrated into the OS/2 environment as possible. The best way is to let the user decide how he likes to use a program or which functions he needs. This is the reason why we decided to release MainActor/2 at this stage. Of course this means that we need your feedback. So, if you are interested in an animation processing package for OS/2, send us your suggestions. Note that beta software can contain bugs and is missing features of the final release. ═══ 3. MainActor/2 ═══ MainActor/2 is the animation processing part of the MainActor/2 package. You can load, edit and play/show every animation, picture and sound format for which MainActor/2 has the proper loader module. You can save any animation, picture and sound format for which MainActor/2 has the proper saver module. The currently supplied modules are listed by selecting the Loader Modules... and Saver Modules... items of the Help menu. MainActor/2 features detailed online help. For additional information, please have a look at the User Guide. ═══ 3.1. Start Options ═══ You can pass MainActor/2 the names of projects to load. For example mactr.exe gfx\mov\test.mov pix\art.pcx would load the animation test.mov and the picture art.pcx right after MainActor/2 has started. ═══ 3.2. User Guide ═══ This guide explains the functionality of MainActor/2 as well as the vocabulary used by the online help and this documentation. ═══ 3.2.1. Working with Projects ═══ A project is either an animation, one or several pictures or a sound effect. An animation or sound effect is always a project of its own, the name of the project will be the name of the animation/sound effect. Pictures are handled differently. All pictures of a given format are grouped together in one project, the name of the project will be the name of the format of the pictures, like IFF or JPEG. This way you can group any numbers of pictures together and convert them into an animation. Every project has its own pop-up menu which is identical to the Project menu. If you press the right mouse button in the containers whitespace, the File menu will be shown as a pop-up menu. ═══ 3.2.1.1. Loading Projects ═══ There are several ways how to load a project. We included our own file requester with MainActor/2, this way you can select any number of files very easily, for example load a whole directory or a range of files. If you choose to use the system file requester you will have to select any single file per hand. A different way is to drag and drop the file icons over the project list. This way you can also load any number of files. ═══ 3.2.1.2. Playing Projects ═══ Simply double click on the project or select the Play Project... item of the Project menu. ═══ 3.2.1.3. Removing Projects ═══ Use the Remove Project item of the Project menu if you want to remove a specific project. Also, if you want to remove all currently loaded frames, you can use the Remove All item of the File menu. Another way is to drag and drop the project icon over a shredder object. ═══ 3.2.2. Working with Frames ═══ The frames of the current project are displayed in the frame list. A frame is an image which is either part of an animation or a picture in a picture list. If the frame is part of a picture list, the frames can be sorted, single or various pictures can be removed or their locations can be changed by drag and drop. This is not possible for animation frames, as these are mostly dependent on a each other in a linear fashion. Frames have the Frames menu available as a pop-up menu. ═══ 3.2.2.1. Removing Frames ═══ You can remove the currently selected frames by selecting the Remove Frames item of the Frames menu or by dragging the frames to a shredder object. Removing frames is only possible if the frames are part of a picture list. ═══ 3.2.2.2. Selecting Frames ═══ Frames can be simply selected with the mouse or by selecting one of the Select or Deselect sub menu items of the Edit menu. The items of the Frames menu often work on all selected frames, like the items for removing and saving. ═══ 3.2.2.3. Showing Frames ═══ A frame can be displayed by simply double clicking on it or by selecting the Show Frames... item of the Frames menu. ═══ 3.2.2.4. Sorting Frames ═══ Frames can be sorted by hand or automatically by their size or filename. To sort the frames by hand, simply drag and drop the frames to their new location inside the frame list. The sub menu items of the Sort Frames item of the Frames menu sort the frames by their size or filename. Sorting frames is only possible if the frames are part of a picture list. ═══ 3.2.3. Working with Timecodes ═══ Every frame of an animation or picture list has a timecode associated to it. The timecode controls the time the frame is shown during playback. MainActor/2 displays the timecode in milliseconds, therefore a timecode of 1000 would mean that the frame would be displayed exactly one second. Projects can have two different kinds of timecodes: Global or local timecodes. Converting projects with different timecode methods can be tricky, have a look at the Timecode Translation. ═══ 3.2.3.1. Global Timecodes ═══ Global timecodes only support one timecode per animation, meaning that every frame has to have the same timecode. These animation formats, for example AVI/FLI/FLC, often insert additional frames into the animation for timing purposes. These frame are dummy frames and have a size of zero, they just have the purpose to slow down playback for the last 'real' frame. You can set the global timecode of an animation by selecting the Global Timecode... item of the Project menu. ═══ 3.2.3.2. Local Timecodes ═══ Local timecodes can be set for every frame of an animation and allow a different timecode for each frame. Local timecodes can be found in QT and IFF-AnimX animation formats. You can however not set the local timecodes of QT animations. Additionally, MainActor/2 treats picture lists as if they would have a local timecode feature. You can therefore set the timecodes of pictures. This is useful for quickly making a slide show as a preview of an animation or to set the timecodes prior to saving, so that the resulting animation automatically has the right timecodes associated to it. You can change the local timecodes of the currently selected frame by choosing the Local Timecodes... item of the Frames menu. ═══ 3.2.4. Notes on Saving ═══ Saving new pictures or animations is quite easy, you can save all frames or just the selected frames of the frame list to the new format. When saving pictures, MainActor/2 will automatically enumerate the new pictures, like "test0003.bmp". There are however some things you need to know, like how MainActor/2 deals with Timecode Translations or handles 8Bit Palettes. ═══ 3.2.4.1. 8Bit Palettes ═══ When you save a new 8Bit (256 color) animation MainActor/2 will use a customized palette for the whole animation. That means that MainActor/2 will not save a new palette once the source palette changes but tries to create an optimized palette for the new animation which will then be used for all frames. We think this approach results in smoother animations, especially on platforms which write directly to the color space, like low level DOS, Amiga and MAC viewers. The generation of the animation is, however, slower, as MainActor/2 has to process all frames to generate the source palette. ═══ 3.2.4.2. Timecode Translation ═══ There can be some problems while converting local timecode animations to global timecode animation formats. Converting global timecode animation formats to local timecode animation formats is easy, because MainActor/2 can set every local timecode to the global timecode of the source project. This does not work the other way round, as you can set the global timecode of the animation to only one of the local timecodes of the source project. MainActor/2 tries to calculate the best global timecode for the new project and inserts dummy frames behind frames which have higher timecodes than the new global one. This all sounds a little complicated but we hope MainActor/2 does the job without you even noticing it. If you are not satisfied with the timing of a certain animation, you can always split it up into pictures, load them as a picture lists and can set the timecodes of the pictures yourself. If you want to add dummy frames in the resulting animation, simply add the same picture various times into the picture list. Of course, a later version of MainActor/2 will have a sequencer which will make this kind of work very easy indeed. ═══ 4. MainView/2 ═══ MainView/2 is the player only part of MainActor/2. Useful if you just want to play an animation or want to run an animation from within another program, like the WebExplorer. It can play every format for which MainActor/2 has the proper loader module. Saving is not supported from within MainView/2. The install script writes the path of the current directory to the user.ini file. This helps MainView/2 to find its loader modules if it was not started from within its own directory. If you change the location of the MainActor/2 files or delete the user.ini file, make sure to restart the install script. ═══ 4.1. Start Options ═══ Starting MainView/2 by clicking on its icon opens a file requester. Otherwise you can pass the name on the command line. Note that you can also drop the icon of the animation or picture on the MainView/2 icon. The syntax for MainView/2 is: mainview.exe [options] filename. MainView/2 supports the following options in this release: -(c|cache) Cache Data. This option will load all data of the animation into a ram cache before playing. This will speed up animation playback. If not enough free ram is available, MainView/2 will free the already allocated memory and play directly from harddisk/cdrom. This option is off by default. -(v|volume) number Set the sound volume, the range for the number is 0-100. Default is 80. -(tbl|toolbarlocation) location Sets the initial location of the control toolbar. Location can be one of the following strings: top, bottom, left, right, floating and hidden. -(hw|hidewindow) Hide the load window, the window which displays the progress of the loading process. The window will not be shown. This option is off by default. -(das|disableautostart) This option will stop MainView/2 to start animations automatically. -(sfr|systemfilerequester) Use the system file requester instead of the custom file requester. This option is off by default. -(r|repeat) number The number indicates how many times the project shall be repeated while playing. Default is 1. Example: mainview -volume 80 -tbl bottom dino.mov would play the dino.mov animation with a sound volume of 80 and the toolbar would be located at the bottom of the window. ═══ 5. mainCODEC/2 ═══ mainCODEC/2 is part of MainActor/2 but is distributed as a separate archive. It contains a subset of the MainActor/2 modules as MMPM/2 codecs. These codecs allow the supported formats to be used within the native OS/2 multimedia system, for example inside the player or VideoIN. ═══ 5.1. Where to find it ═══ mainCODEC/2 can be downloaded from our Web Pages (http://www.ac-copy.com/maincpt.html) and our BBS (+49-(0)241-4090446). Also, it should be available per ftp at hobbes.nmsu.edu. ═══ 6. Mailing List ═══ We are running a mailing list for MainActor/2 called os2-MainActor. If you are interested in the product, we recommend to join the list. To join to the mailing list send email to listserv@mainconcept.de. ADD os2-MainActor Adds your email address to the mailing list. DELETE os2-MainActor Deletes your email address from the mailing list. FAQ os2-MainActor Will send the FAQ of the mailing list. INDEX Will send a list of all available mailing lists on our server. HELP Will send the help page for all available commands on our server. ═══ 7. Registration ═══ If you decide to register MainActor/2, we will send you a personal serial number which will be able to unlock all future versions of this software. The fee for MainActor/2 is $60 (99,- DM) or any equivalent sum in your local currency. Please no foreign checks (except EuroChecks). We do take Master/EuroCard and VISA. You can contact us at : MainConcept, GbR Moenig/Zabel Hermann-Heusch-Platz 3 D-52062 Aachen Germany Tel: +49-(0)241-4090444 FAX: +49-(0)241-4090445 BBS: +49-(0)241-4090446 Email: info@mainconcept.de http://www.ac-copy.com/maincpt.html ═══ 8. History ═══ The history lists the last three revisions of MainActor/2, together with the bug fixes, improvements and new features of every revision. ═══ 8.1. Version 0.29 ═══ o Added the -das option to MainView/2. o Added support for TIMER0.SYS. This should solve all timing problems. o MainView/2 does not update the frame counter anymore while loading (to avoid these nasty flashes). o MainView/2 now reports warning messages from the loader modules (like unknown audio or video tracks, etc). o Rewrote large parts of the Ultimotion support. Although the code is not yet that fast, the pixel noise problems are history now. o Support for as RGB8 disguised RLE8 AVI codecs added. o Improved sound caching for CD-Rom playback. o Rewrite of the loader and saver module info window. o ** Serious QT bug fix. The bug caused corruption, mostly in CVID animations. o Changed MainViews default sound volume from 100 to 80. o Rewrote of the save window, basic support for sound saving was added internally for the coming AVI saver. ═══ 8.2. Version 0.30 ═══ o Audio/Video sync has been much improved. o Added the playback speed functions to the menu of the playback window. o Revised the menu layout of the dive window. o Added the control toolbar functions to the control menu. o Added the frames per second titlebar option. o Added the goto frame function in the control menu. o Tried to re-implement the FS-DIVE functionality but failed. ═══ 8.3. Version 0.35 ═══ o Added the different timecode settings and reintroduced the settings menu. o Rewrote parts of the documentation. o Enhanced the drag and drop support, you can now drag projects and frames to the shredder (only if the frame is a picture) and can sort picture lists by drag and drop. o Added the IFF-Anim3/5/7/8/J loader modules. o Added the Remove Frames item in the frames menu. o Added the Remove All item in the file menu. o You can now change the timecodes of pictures, so that you can give them the right timecodes to try them out before saving. Also nice for making slide-shows. o Added the first chapters in the user guide of MainActor/2. o Added the custom file requester for both MainActor and MainView. o Added the repeat option in the dive window and added the repeat command line option to mainview. o Introduced a valid size check for the last frames of QT animations. o Added timecode translation functions to the save modules. Conversion from local to global timecode formats now keeps the original timecodes intact (with the use of dummy frames). o Added the AVI saver module and the RGB8, RGB24 and RLE codecs. o Added the RGB4 codec to the AVI loader module. o The internal save function has been completely redesigned. DIVE has been scraped for buffer to buffer conversion, this is now done by custom routines. Median Cut is now used to generate the new color palette for 8bit animations and pictures. The palette is built by loading all frames of the source project and examining the